package _18求平衡点;

public class Main2 {
	public static void main(String[] args) {
		// 误解 理解了不同的意思
		// 薄片物体求平衡点
		// 实现一个程序，用于求出二维数组是否存在平衡点；如果存在平衡点，则输出平衡点的位置。
		// 二维数组的平衡点存在如下特征：
		// .它所有上面的元素和等于下面的元素和
		// .它所有左边的元素和等于右边的元素和
		// 求二维数组的平衡点的物理意义是求出薄片物体的质心位置。
		// 输出：平衡点在(x,y)
		// 或： 输出：这个二维数组没有平衡点
		int[][] a = {   { 2, 2, 0, 0, 2, 0 }, 
						{ 0, 1, 0, 0, 1, 1 }, 
						{ 0, 0, 0, 1, 0, 0 }, 
						{ 0, 1, 1, 0, 0, 1 },
						{ 0, 2, 0, 0, 2, 0 } };
		boolean pan1 = false, pan2 = false;
		int g = 0, h = 0;
		for (int p = 0; p < 5; p++) {
			for (int i = 0; i < 6; i++) {
				int m = 0, n = 0;
				for (int j = 0; j < i; j++) {
					m = m + a[p][j];
				}
				for (int k = i + 1; k <= 6 - 1; k++) {
					n = n + a[p][k];
				}
				if (m == n) {
					pan1 = true;
					g = i;
					System.out.printf("输出：平衡点在：" + "(%d, %d)", (p + 1), (g + 1));
				}
			}
		}
		System.out.println();
		for (int k = 0; k < 6; k++) {
			for (int p = 0; p < 5; p++) {
				int m = 0, n = 0;
				for (int i = 0; i < p; i++) {
					m = m + a[i][k];
				}
				for (int j = p + 1; j < 5 - 1; j++) {
					n = n + a[j][k];
				}
				if (m == n) {
					h = p;
					pan2 = true;
					System.out.printf("输出：平衡点在：" + "(%d, %d)", (h + 1), (k + 1));
				}
			}
		}
		// if (pan1 == true && pan2 == true) {
		// System.out.printf("输出：平衡点在：" + "(%d, %d)", (g + 1), (h + 1));
		// } else {
		// System.out.println("输出：这个二维数组没有平衡点");
		// }
	}
}
